package br.com.seosoft.simplecalcfinan;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Currency;
import java.util.Date;
import java.util.Locale;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.content.Context;
import android.graphics.Color;
import android.net.ConnectivityManager;
import android.util.Log;

public class geral {

	// VARIAVEIS PADROES DO PROGRAMA
	public static String LogCat = "SimpleCalcFinan";
	public static String id_AdMob = "a151aceff5eda6a";
	public static boolean logado = false;
	public static Date intervaloInteracao = null;
	public static final String REVMOB_APP_ID = "51f2a9599fe11ce4cd000013";

	public static String ORDENAR_SQL_DATA = "ORDENAR.SQL.DATA";
	public static String ORDENAR_SQL_VALOR = "ORDENAR.SQL.VALOR";
	public static String REMOVEU_ADS = "removeu.ads";

	// IMPORTAR CSV

	public static String filePatch;
	public static String fileNome;
	public static String fileTamanho;
	public static String fileData;

	// VARIAVIES GRUPOS
	private int idGrupo;
	private int QuantGrupos;
	private String descGrupo;
	private Double TotalContasGrupo;
	private Double totalGrupos;

	// VARIAVIES CONTAS
	private int idConta;
	private String fk_grupo;
	private int QuantContas;
	private String descConta;
	private Double saldoConta;
	private Double totalContas;
	private Date data;

	// ****URLS****

	// IP
	public static final String IP = "192.241.234.159";
	// BASE URL
	public static final String URL = "http://192.241.234.159/webservice";

	// USUARIOS
	public static final String URL_USUARIO = "/usuarios/";

	// ID
	public static final String URl_ID_USUARIO = "id/";

	// ID PLUS
	public static final String URl_ID_USUARIO_PLUS = "id_plus/";

	// *****METODOS GRUPOS********

	// METODO GET _ID GRUPO
	public int getIdGrupo() {
		return idGrupo;
	}

	// METODO GET _QUANTIDADE DE GRUPOS
	public int getQuantidadeGrupos() {
		return QuantGrupos;
	}

	// METODO GET _DESC GRUPO
	public String getDescGrupo() {
		return descGrupo;
	}

	// METODO GET TOTAL_CONTAS GRUPO
	public Double getTotalContasGrupo() {
		return TotalContasGrupo;
	}

	// METODO GET TOTAL_GRUPOS
	public Double getTotalGrupos() {
		return totalGrupos;
	}

	// METODO SET _ID GRUPO
	public void setIdGrupo(int id) {
		idGrupo = id;
	}

	// METODO SET _QUANTIDADE DE GRUPOS
	public void setQuantidadeGrupos(int quan) {
		QuantGrupos = quan;
	}

	// METODO SET DESC GRUPO
	public void setDescGrupo(String DescGrupo) {
		descGrupo = DescGrupo;
	}

	// METODO SET TOTAL CONTAS GRUPO
	public void setTotalContasGrupo(Double setTotalContasGrupo) {
		TotalContasGrupo = setTotalContasGrupo;

	}

	// METODO SET _SALDO GRUPOS
	public void setTotalGrupos(Double setTotalGrupos) {
		totalGrupos = setTotalGrupos;

	}// FIM *****METODOS GRUPOS********

	// *****METODOS CONTAS********

	// METODO GET _ID CONTA
	public int getIdConta() {
		return idConta;
	}

	// METODO GET _FK GRUPO
	public String getFkGrupo() {
		return fk_grupo;
	}

	// METODO GET _QUANT CONTAS
	public int getQuantContas() {
		return QuantContas;
	}

	// METODO GET _DESC CONTA
	public String getDescConta() {
		return descConta;
	}

	// METODO GET _SALDO CONTA
	public Double getSaldoConta() {
		return saldoConta;
	}

	// METODO GET _SALDO CONTA
	public Double getTotalContas() {
		return totalContas;
	}

	// METODO SET _ID CONTA
	public void setIdConta(int id) {
		idConta = id;
	}

	// METODO SET _FK_GRUPO
	public void setFkGrupo(String id) {
		fk_grupo = id;
	}

	// METODO SET QUANTIDADE DE CONTAS
	public void setQuantContas(int quant) {
		QuantContas = quant;
	}

	// METODO SET _DESC CONTA
	public void setDescConta(String auxDescConta) {
		descConta = auxDescConta;
	}

	// METODO SET _SALDO CONTA
	public void setSaldoConta(Double setSaldoConta) {
		saldoConta = setSaldoConta;

	}

	// METODO SET TOTAL CONTAS
	public void setTotalContas(Double setTotalContas) {
		totalContas = setTotalContas;

	}// FIM *****METODOS CONTAS********

	// CONVERTE PARA CURRENCY
	public String DecimalCurrency(Double number) {
		Currency currency = Currency.getInstance(Locale.getDefault());
		DecimalFormat formato = new DecimalFormat(currency.getSymbol()
				+ " #,##0.00");
		return formato.format(number);

	}

	// CONVERTE PARA DECIMAL
	public String Decimal(Double number) {

		DecimalFormat formato = new DecimalFormat("0.00");
		return formato.format(number);

	}

	// VERIFICA SE POSITIVO OU NEGATIVO OU 0 E MUDAR A COR TEXTO
	public int mudarCor(Double valor) {

		if (valor == 0) {

			int cor = Color.BLACK;
			return cor;

		}
		if (valor < 0) {

			int cor = Color.RED;
			return cor;

		} else {
			int cor = Color.parseColor("#228B22");
			return cor;
		}
	}

	// VERIFICA CONEX������O INTERNET
	public static boolean Conectado(Context context) {
		try {
			ConnectivityManager cm = (ConnectivityManager) context
					.getSystemService(Context.CONNECTIVITY_SERVICE);

			if (cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
					.isConnected()) {
				Log.d(LogCat, "Status de conex������o 3G: "
						+ cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
								.isConnected());
				return true;
			} else if (cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
					.isConnected()) {

				Log.d(LogCat, "Status de conex������o Wifi: "
						+ cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
								.isConnected());
				return true;
			} else {
				Log.e(LogCat, "Status de conex������o Wifi: "
						+ cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
								.isConnected());
				Log.e(LogCat, "Status de conex������o 3G: "
						+ cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
								.isConnected());
				return false;
			}
		} catch (Exception e) {
			Log.e(LogCat, e.getMessage());
			return false;
		}
	}

	// Obtem arquivo de um endere������o
	public String readUrl(String url) {
		StringBuilder builder = new StringBuilder();
		HttpClient client = new DefaultHttpClient();
		HttpGet httpGet = new HttpGet(url);
		try {
			HttpResponse response = client.execute(httpGet);
			StatusLine statusLine = response.getStatusLine();
			int statusCode = statusLine.getStatusCode();
			Log.i(geral.LogCat, "StatusLine  = " + statusLine.toString());
			Log.i(geral.LogCat, "StatusCode  = " + statusCode);
			if (statusCode == 200) {
				HttpEntity entity = response.getEntity();
				InputStream in = entity.getContent();
				BufferedReader reader = new BufferedReader(
						new InputStreamReader(in));
				String line;
				while ((line = reader.readLine()) != null) {
					builder.append(line);
				}
			} else {
				Log.e(geral.LogCat, "Falha no Download do arquivo");
			}
		} catch (Exception e) {
			Log.e(geral.LogCat, e.getMessage(), e);
		}

		Log.i(geral.LogCat, builder.toString());
		return builder.toString();
	}

	public Date getData() {
		return data;
	}

	public void setData(Date data) {
		this.data = data;
	}
}
